home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fatted Calf
/
The Fatted Calf.iso
/
Applications
/
Misc
/
NewFile
/
Source
/
Help.m
< prev
next >
Wrap
Text File
|
1992-11-11
|
3KB
|
117 lines
/* Generated by Interface Builder */
#import "Help.h"
#import "Main.h"
#import "Server.h"
#import <appkit/NXBrowser.h>
#import <appkit/NXBrowserCell.h>
#import <appkit/ScrollView.h>
#import <appkit/Text.h>
#import <appkit/Panel.h>
#import <appkit/Matrix.h>
#import <appkit/Application.h>
#import <sys/file.h>
#import <sys/param.h>
#import <libc.h>
@implementation Help
// Is interface loaded?
// If more than one help instance, make this an instance var.
int loaded=0;
/* Bring up the interface.*/
- show:sender
{
if (loaded==0)
{
[NXApp loadNibSection:"Help.nib" owner:self];
}
[panel makeKeyAndOrderFront:self];
[browser displayColumn:0];
return self;
}
/* Display the content of a file in the scrolling view.*/
- loadFile:(char *)name
{
int fd;
NXStream *st;
fd = open(name, O_RDONLY, 0);
if (fd >= 0)
{
if ((st = NXOpenFile(fd, NX_READONLY)) != 0)
{
[text readRichText:st];
[text sizeToFit];
// Set the `cursor' to the start of the text.
[text setSel:0:0];
// Adjust the scroll position so that start of text is visible.
[text scrollSelToVisible];
NXClose(st);
}
close(fd);
}
return self;
}
/*
This message is called by the entries in the `sections' section to display the appropriate help file.
*/
- helpme:sender
{
char title[100], name[MAXPATHLEN];
// The name of the help file is the same as the title of the section.
[sender getPath:title toColumn:1];
sprintf(name, "%s/Help%s", [appDelegate appdir], title);
[self loadFile:name];
return self;
}
// Respond to the browser's query about whether the data has been loaded.
- (BOOL)browser:sender columnIsValid:(int)column
{
return loaded!=0;
}
// Add a help section to the list.
- addTopic:(char *)title at:(int)pos in:matrix for:browser
{
id cell;
[matrix insertRowAt:pos];
cell = [matrix cellAt:pos:0];
[cell setStringValue:title];
[cell setLoaded:YES];
[cell setLeaf:YES];
return self;
}
// Fill the list of help sections.
- (int)browser:sender fillMatrix:matrix inColumn:(int)column
{
[self addTopic:"What is NewFile" at:0 in:matrix for:sender];
[self addTopic:"General use" at:1 in:matrix for:sender];
[self addTopic:"Current directory" at:2 in:matrix for:sender];
[self addTopic:"Defining file types" at:3 in:matrix for:sender];
[self addTopic:"Updating Services" at:4 in:matrix for:sender];
[self addTopic:"Command keys" at:5 in:matrix for:sender];
[self addTopic:"Things to do" at:6 in:matrix for:sender];
[self addTopic:"Info" at:7 in:matrix for:sender];
loaded++;
// Return the number of sections.
return 8;
}
// Intercept the scrolling view's initialization to get its doc view.
- setScrollingview:anObject
{
scrollingview = anObject;
text = [scrollingview docView];
return self;
}
@end